package com.coin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.coin.domain.TradeArea;
import com.coin.vo.TradeAreaMarketVo;

import java.util.List;

/**
 * @author 李力
 * @description 针对表【trade_area(交易区)】的数据库操作Service
 * @createDate 2025-06-20 14:51:04
 */
public interface TradeAreaService extends IService<TradeArea> {

    /**
     * @Description: 交易区域的分页查询
     * @Author: 李 力
     * @Date: 2025/6/20
     * @Param:
     * @return: R
     */
    Page<TradeArea> findByPage(Page<TradeArea> page, String name, Byte status);

    /**
     * @Description: 新增一个交易区域
     * @Author: 李 力
     * @Date: 2025/6/20
     * @Param:
     * @return: R
     */
    boolean saveTradeArea(TradeArea tradeArea);

    /**
     * @Description: 修改一个交易区域
     * @Author: 李 力
     * @Date: 2025/6/20
     * @Param:
     * @return: R
     */
    boolean updateTradeArea(TradeArea tradeArea);

    /**
     * @Description: 修改一个交易区域的状态
     * @Author: 李 力
     * @Date: 2025/6/20
     * @Param:
     * @return: R
     */
    boolean updateStatus(TradeArea tradeArea);

    /**
     * @Description: 根据状态查询交易区域
     * @Author: 李 力
     * @Date: 2025/6/20
     * @Param:
     * @return: R
     */
    List<TradeArea> findAll(Byte status);

    /**
     * @Description: 交易区域查询
     * @Author: 李 力
     * @Date: 2025/6/21
     * @Param:
     * @return: R
     */
    List<TradeAreaMarketVo> findTradeArea();

    /**
     * @Description: 用户收藏的交易市场查询
     * @Author: 李 力
     * @Date: 2025/6/23
     * @Param:
     * @return: R
     */
    List<TradeAreaMarketVo> getUserFavoriteMarkets(Long userId);
}
